#pragma once
#include <math.h>
#include "Global.h"

class Vector3f{
public:
    float x,y,z;

    Vector3f(void);
    Vector3f(float _x, float _y);
    Vector3f(float _x, float _y, float _z);

    float length();
    float normalize();

    void set(float _x, float _y, float _z);
    void set(Vector3f &Vec);

    void operator=(const Vector3f &Vec);
    void operator+=(const Vector3f &Vec);
    void operator-=(const Vector3f &Vec);
    void operator*=(const float scalar);

	//Vector3f operator*(const Vector3f &vec);
	//Vector3f operator/(const Vector3f &vec);

    bool operator==(const Vector3f &Vec);
    bool operator!=(const Vector3f &Vec);

    Vector3f operator+(const Vector3f &Vec);
    Vector3f operator-(const Vector3f &Vec);

    Vector3f operator+(const float scalar);
    Vector3f operator-(const float scalar);
    Vector3f operator*(const float scalar);
    Vector3f operator/(const float scalar);

	float findAngleBetween(Vector3f &otherVector);

    Vector3f cross(const Vector3f &Vec);
    float dot(const Vector3f &Vec);
};

static float asm_sqrt (float value)
{
	_asm fld value
	_asm fsqrt
}

